//package com.source.code.variable;
//
//import com.github.javaparser.ast.CompilationUnit;
//import com.github.javaparser.ast.ImportDeclaration;
//import com.github.javaparser.ast.PackageDeclaration;
//import com.github.javaparser.ast.visitor.VoidVisitorAdapter;
//
//import java.util.ArrayList;
//import java.util.List;
//
///**
// * 导入解析程序
// *
// * @author wangchangjie
// * @date 2024/02/01
// */
//public class ImportResolver extends VoidVisitorAdapter<Void> {
//    private List<String> importStatements = new ArrayList<>();
//    private String packageName;
//
//    public void resolveImports(CompilationUnit compilationUnit) {
//        visit(compilationUnit, null);
//    }
//
//    @Override
//    public void visit(ImportDeclaration importDeclaration, Void arg) {
//        String importStatement = importDeclaration.getNameAsString();
//        importStatements.add(importStatement);
//    }
//
//    @Override
//    public void visit(PackageDeclaration packageDeclaration, Void arg) {
//        packageName = packageDeclaration.getNameAsString();
//    }
//
//    public String resolveFullyQualifiedClassName(String variableType) {
//        // 提出掉带泛型的类型
//        if (variableType.contains("<") && variableType.endsWith(">")) {
//            int i = variableType.indexOf('<');
//            variableType = variableType.substring(0, i);
//        }
//
//        for (String importStatement : importStatements) {
//            if (importStatement.endsWith("." + variableType) || importStatement.endsWith(".*")) {
//                if (importStatement.endsWith(".*")) {
//                    String packagePrefix = importStatement.substring(0, importStatement.length() - 1);
//                    // Try to find the specific class in the package
//                    String specificType = packagePrefix + variableType;
//                    if (importStatements.contains(specificType)) {
//                        return specificType;
//                    }
//                } else {
//                    return importStatement;
//                }
//            }
//        }
//
//        return packageName + "." + variableType;
//    }
//}
